//--
app.controller('grupoController', 
		['$scope', '$http', 'grupoService', 'dialogs',
		 function($scope, $http, grupoService, dialogs) {
	
	$scope.list = true;
	$scope.isCreate = true;
	
	/** CREATE **/
	$scope.create = function(unidade) {
		
		$scope.unidade = null;
		$scope.list = false;
		$scope.isCreate = true;
		
	};
	
	/** RETRIEVE **/
	$scope.retrieveFilter = function() {
		
		if($scope.filtro == undefined) {
			return;
		}
		
		var retrieveFilter = grupoService.retrieveFilter($scope.filtro.nome);
		retrieveFilter.then(function(resposta) {
			
			if(resposta != null) {
				if(resposta.data.status) {
					$scope.lista = resposta.data.object;
				} else {
					showAlertMessage(resposta.data.message);					
				}
			} else {
				showAlertMessage('Problemas de comunicação...');					
			}
		});
	};

	/** UPDATE **/
	$scope.update = function(unidade) {
		
		$scope.unidade = unidade;
		$scope.list = false;
		$scope.isCreate = false;
		
	};

	/** DELETE **/
	$scope.dlete = function(unidade) {

		var dlg = dialogs.confirm('Confirma Exclusão?','Grupo: ' + unidade.nome);
        dlg.result.then(function(btn){

    		var deleteBack = grupoService.remove(unidade);
    		deleteBack.then(function(resposta) {
    			if(resposta != null) {
    				if(resposta.data.status) {
						var index = $scope.lista.indexOf(unidade);
						$scope.lista.splice(index, 1);
						showSuccessMessage(resposta.data.message);
    				} else {
    					showErrorMessage(resposta.data.message);
    				}
    			} else {
    				showErrorMessage('Problemas de comunicação...');
    			}
    		});
        	
        },function(btn){
          console.log('Shame on you for not thinking this is awesome!');
        });
        
	};
	
	$scope.save = function(isValid) {

		if(!isValid) {
			return;
		}
		
		var saveBack = grupoService.save($scope.unidade);
		saveBack.then(function(resposta) {
			if(resposta != null) {
				if(resposta.data.status) {
					$scope.unidade = resposta.data.object;
					if($scope.isCreate) {
						if($scope.lista == null) {
							$scope.lista = new Array();
						}
						$scope.lista.push($scope.unidade);
					}
					showSuccessMessage(resposta.data.message);
					$scope.list = true;
				} else {
					showErrorMessage(resposta.data.message);
				}
			} else {
				showErrorMessage('Problemas de comunicação...');
			}
		});
		
	};

	$scope.cancel = function(unidade) {
		$scope.list = true;
	};
	
}]);
